<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8' />
        <title>Raster Tiles</title>
        <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
        <script src='https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.js'></script>
        <link href='https://api.mapbox.com/mapbox-gl-js/v1.8.0/mapbox-gl.css' rel='stylesheet' />

        <!-- 
            Use LocationIQ style control JS & CSS in addition to Mapbox's GL library for the simplest implementation of LocationIQ Maps
        -->
        <script src='https://tiles.locationiq.com/v2/js/liq-styles-ctrl-gl.js?v=0.1.8'></script>
        <link href='https://tiles.locationiq.com/v2/css/liq-styles-ctrl-gl.css?v=0.1.8' rel='stylesheet' />
        
        <style>
            body { margin:0px; padding:0px; }
            #map { position:absolute; top:0px; bottom:0px; width:100%; }
        </style>
    </head>
    <body>
        <div id='map'></div>
        <script>
            //Add your LocationIQ Maps Access Token here (not the API token!)
            locationiq.key = 'pk.a5c3fbf2119bfb2275b62eddbccd76b3';
            //Define the map and configure the map's theme
            var map = new mapboxgl.Map({
                container: 'map',
                attributionControl: false, //need this to show a compact attribution icon (i) instead of the whole text
                zoom: 12,
                center: [-122.42, 37.779]
            });
                        
            //Define layers you want to add to the layer controls; the first element will be the default layer
            var layerStyles = {
                "Streets": "streets/raster",
                "Satellite": "earth/raster",
                "Hybrid": "hybrid/raster",
                "Dark": "dark/raster",
                "Light": "light/raster",
            };

            map.addControl(new locationiqLayerControl({
                key: locationiq.key,
                layerStyles: layerStyles
            }), 'top-left');

            //Add Navigation controls to the map to the top-right corner of the map
            var nav = new mapboxgl.NavigationControl();
            map.addControl(nav, 'top-right');


            //Add a 'full screen' button to the map
            map.addControl(new mapboxgl.FullscreenControl());
            
            //Add a Scale to the map
            map.addControl(new mapboxgl.ScaleControl({
                maxWidth: 80,
                unit: 'metric' //imperial for miles
            }));

            //Add Geolocation control to the map (will only render when page is opened over HTTPS)
            map.addControl(new mapboxgl.GeolocateControl({
                positionOptions: {
                    enableHighAccuracy: true
                },
                trackUserLocation: true
            }));


        </script>
    </body>
</html>
